# 题目一：创建第一个视觉程序“Hello，World！”，显示lena图片。
# （注，由于无老师PPT中Lena图片文件，以下程序采用的是自己网上下载的图片。）
import cv2 as cv

filename = r'E:\AI\Samples\Yang.jpg'
img = cv.imread(filename)

# 图0
cv.imshow("Hello,World!",img)
# cv.waitKey()
# cv.destroyAllWindows()


# 题目二：对lena图像，分解得到RGB分量及HSV分量，显示各分量，并对结果进行比较说明。
# (注：由于原图像太大，此处用原图像的四分之一大小作为颜色分解的初始图像）
image1=cv.resize(img,(int(img.shape[1]/2),int(img.shape[0]/2)))
image2=cv.pyrDown(image1)

imgGauss = cv.GaussianBlur(image2,(5,5),0)

gray=cv.cvtColor(image2,cv.COLOR_BGR2GRAY)
_,gray1 = cv.threshold(gray,120,0xff,cv.THRESH_BINARY)

hsv = cv.cvtColor(image2,cv.COLOR_BGR2HSV)

# cv.imshow("source image",img)

# 图1
cv.imshow("Gaussion filtered image",imgGauss)

# cv.imshow("half size",image1)

# 图2
cv.imshow("quarter size",image2)
# 图3
cv.imshow("gray",gray)
# 图4
cv.imshow("threshold image",gray1)
# 图5
cv.imshow("Hue",hsv[:,:,0])
# 图6
cv.imshow("Saturation",hsv[:,:,1])
# 图7
cv.imshow("Intensity",hsv[:,:,2])
# 图8
cv.imshow("Blue",image2[:,:,0])
# 图9
cv.imshow("Green",image2[:,:,1])
# 图10
cv.imshow("Red",image2[:,:,2])

cv.waitKey()
cv.destroyALLWindows()

# 结果分析说明：
# (1)HSI分量
# 在色调图5中，外套为红色，最高，显示为白色，其它部分向黑色过渡；
# 在饱和度图6中，外套红色最高，显示为白色，脸的部分，值为0，显示为黑色；
# 在亮度图7中，各个部分颜色亮度。
#（2）RGB分量
# 在Red图8中，外套红色敏感，最高，显示为白色。
# 在Blue图10中，背景左边部分为蓝色属性，敏感，显示为白色。